package com.bosssoft.utils;

import com.bosssoft.entity.Student;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;

import java.io.*;
import java.util.List;


/**
 * @author 戴圣燃
 * ParseJSONUtil类实现了Util接口，用于解析JSON文件。
 */
@Slf4j
public class ParseJSONUtil implements Util{

    /**
     * 使用指定的工具方法处理文件。
     *
     * @param filePath 要处理的文件路径。
     * @return 总是返回"null"，当前方法实现中未使用返回值。
     * @throws IOException 如果读取文件发生错误。
     */
    @Override
    public String useUtil(String filePath) throws IOException {
        try(// 打开文件输入流
            FileInputStream fin = new FileInputStream(filePath);
            InputStreamReader reader = new InputStreamReader(fin);
            BufferedReader buffReader = new BufferedReader(reader);) {

            // 逐行读取文件内容
            String strTmp = "";
            while ((strTmp = buffReader.readLine()) != null) {
                String s = strTmp.substring(0, 1); // 获取当前行的第一个字符
                if (s.equals("[")) { // 如果行以"["开始，则解析为JSON数组
                    List<Student> studentList = JSON.parseArray(strTmp, Student.class);
                    log.info(studentList.toString());
                } else if (s.equals("{")) { // 如果行以"{"开始，则解析为JSON对象
                    Student student = JSON.parseObject(strTmp, Student.class);
                    log.info(student.toString());
                }
            }
        }
        return "null"; // 方法当前实现总是返回"null"
    }


}
